客户端负载均衡Spring Cloud Ribbon
Contents
客户端负载均衡Spring Cloud Ribbon
Spring cloud Ribbon
是一个基于HTTP 和TCP的客户端负载均衡工具。它基于Netflix Ribbon
实现。通过Spring Cloud 的封装,可以轻松的将面向服务的REST模板请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon
虽然是一个工具类框架,它不像服务注册中心,配置中心,API网关那样需要独立部署,但是它几乎存在于每一个Spring Cloud
构建的微服务和基础设施中。因为微服务间的调用,API网关的请求转发等内容,实际上都是通过Ribbon来实现的。
Ribbon 通常在服务消费者上使用。
客户端负载均衡
负载均衡在系统架构中是一个非常重要,并且不得不实施的内容。因为负载均衡是对系统的高可用,网络压力的缓解和处理能力扩容的重要手段之一。通过所说的负载均衡都是在服务端负载均衡。硬件负载均衡主要通过在服务器节点之间安装专门用于负载均衡的设备。软件负载均衡则通过在服务器上安装一些具有负载均衡功能或模块的软件来完成请求分发工作。
硬件负载均衡的设备或者软件负载均衡的软件模块都会维护一个可用的服务器清单,通过心跳检测来剔除故障的服务器节点以保证清单中都是可以正常访问的服务端节点。当客户端发送请求到负载均衡的设备的时候,该设备按照某种算法从维护的可用服务器清单中取出一台服务器的地址,然后进行转发。
客户端负载均衡和服务端负载均衡的最大不同点在于服务清单所存储的位置。客户端负载均衡中,所有客户端节点都维护着自己要访问的服务端清单,而这些服务端的清单来自服务注册中心,例如eureka.同服务端负载均衡的架构类似,在客户端负载均衡也需要心跳去维护服务端清单的健康性。这个步骤需要与服务注册中心配合完成。
Author: corn1ng
Link: https://corn1ng.github.io/2018/03/29/客户端负载均衡Spring Cloud Ribbon/
License: 知识共享署名-非商业性使用 4.0 国际许可协议